package com.distribution.system.domain.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * @author Liping Huo
 * @date 2023/5/22 21:46
 */
@Data
@Accessors(chain = true)
public class CmccDaOrder implements Serializable {
    /**
     * 自增id
     */
    @TableId(type = IdType.AUTO)
    private Integer id;
    /**
     * 订单编号
     */
    private String orderId;
    /**
     * 外部订单号（渠道方单号）
     */
    private String channelOrderNo;
    /**
     * 用户id
     */
    private Long userId;
    /**
     * 用户名
     */
    private String userName;

    private Long superiorAgentId;
    private String superiorAgentName;
    /**
     * 商品code
     */
    private String productCode;
    /**
     * 商品参数
     */
    private String productParam;
    /**
     * 商品名称
     */
    private String productName;
    /**
     * 分流后商品参数
     */
    private String afterFlowProductParam;
    /**
     * 分流后商品名称
     */
    private String afterFlowProductName;
    /**
     * 商品类型
     */
    private Integer productTypeId;
    /**
     * 商品图片
     */
    private String productImg;
    /**
     * 姓名
     */
    private String customerName;
    /**
     * 证件号
     */
    private String customerCertNo;
    private Integer customerAge;
    /**
     * 配送地址
     */
    private String address;
    /**
     * 省名称
     */
    private String addressProvince;
    /**
     * 省区划代码
     */
    private String addressProvinceCode;
    /**
     * 市名称
     */
    private String addressCity;
    /**
     * 市区划代码
     */
    private String addressCityCode;
    /**
     * 县名称
     */
    private String addressArea;
    /**
     * 县区划代码
     */
    private String addressAreaCode;
    /**
     * 街道信息
     */
    private String addressStreet;
    /**
     * 联系电话
     */
    private String customerPhone;
    /**
     * 选购号码
     */
    private String choosePhone;
    /**
     * 原号码
     */
    private String sourcePhone;
    /**
     * 验证码
     */
    private String code;
    /**
     * 选择号码省名称
     */
    private String attributeProvince;
    /**
     * 选择号码省名称区划代码
     */
    private String attributeProvinceCode;
    /**
     * 选择号码市名称
     */
    private String attributeCity;
    /**
     * 选择号码市名称区划代码
     */
    private String attributeCityCode;
    /**
     * 完成条件id
     */
    private String profitConditionId;
    /**
     * profit_condition_desc
     */
    private String profitConditionDesc;
    /**
     * 条件完成状态 0未完成 1已完成
     */
    private String profitConditionStatus;
    /**
     * 佣金
     */
    private BigDecimal commission;
    /**
     * 订单状态 0失败 1下单成功 2进行中 3已成功
     */
    private String orderStatus;
    /**
     * 订单状态描述
     */
    private String orderStatusDesc;
    /**
     * 最近一次充值金额（分）
     */
    private BigDecimal scMoney;
    /**
     * 产品状态:1=激活，2=退单，3=转套餐， 4=销户，6=首充数据同步，10=开户完成，11=发货，-1=无，-2=异常
     */
    private String productStatus;
    /**
     * 激活时间、或者首冲时间 根据状态判断是激活或者首充
     */
    private String limitTime;
    /**
     * 绑定的三方信息
     */
    private Integer bindChannelInfoId;
    private String bindChannelInfoName;
    /**
     * 渠道方订单状态
     */
    private String channelOrderStatus;
    /**
     * 渠道方订单状态信息描述
     */
    private String channelOrderStatusMsg;
    /**
     * 物流信息
     */
    private String logisticsInfo;
    /**
     * 号码唯一id
     */
    private String phoneUuid;
    /**
     * 选号标识
     */
    private String choosePhoneMark;
    /**
     * 失败原因
     */
    private String failureReason;
    /**
     * 请求json
     */
    private String requestJson;
    /**
     * 响应json
     */
    private String responseJson;
    /**
     * 客户订购路径，如抖音、微信
     */
    private String subscribePath;
    /**
     * 抖音小程序openId
     */
    private String openId;
    /**
     * 订单积分，范围0-1（每涨价1元积分减0.1）
     */
    private BigDecimal points;
    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTime;
    /**
     * 更新时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime updateTime;
    private Integer fuluUploadStatus;
    /*是否注销*/
    private String writeOffFlag;
}
